<?php

require_once 'OperacoesBD.php';
require_once 'ConectaDB.php';
require_once 'DBAluno.php';

/**
 * Classe responsável por tratar toda as alterações referentes a tabela Tcc no banco de dados,
 * ela implementa a interface OperacoesBD, afim de garantir que os métodos básicos de inserção, 
 * consulta, edição e exclusão de dados sejam implementados na aplicação.
 * 
 * @author gabrielbmoro
 */
class DBTcc implements OperacoesBD {

    private $conection;
    private $table;
    private $bdconection;
    private $dbAluno;

    /* O método construtor inicializará os dados: recuperando a conecção com o banco de dados, 
      inicializando o nome da tabela e recuperando o objeto mediador com a base de dados */

    public function __construct() {
        $this->conection = ConectaDB::singleton();
        $this->bdconection = $this->conection->getBCConection();
        $this->table = "`Tcc`";
        $this->dbAluno = new DBAluno();
    }

    /* Método que edita dados de autorizaçã de acordo com o idAluno recuperado pelo nome do aluno. */

    public function editarAutorizacao($campo, $dado) {

        $idAluno = $this->dbAluno->recuperaIdAluno($campo[0]);

        $resultSet = $this->bdconection->query("UPDATE " . $this->table . " SET `autorizado`=" . $dado . " WHERE `Aluno_idAluno`= " . $idAluno . ";");
        echo $idAluno;
        return $resultSet;
    }

    /* Método responsável por recuperar o idTcc de acordo com idAluno. */

    public function recuperaIdTcc($idAluno) {
        $colunas = "`idTcc`";
        $id = null;
        if (isset($this->conection)) {
            $resultSet = $this->bdconection->query("SELECT " . $colunas . " FROM " . $this->table .
                    " WHERE `Aluno_idAluno` = " . $idAluno . ";");


            while ($row = $resultSet->fetch_object()) {
                $id = $row->idTcc;
            }
        }
        return $id;
    }

    /* Método responsável por realizar um select utilizando a característica LIKE na consulta, ou seja, 
     * utilizando o atributo valores que pode conter na palavra, não precisando ser a palavra igual a registrada em banco.
     * Por exemplo, LIKE %'g'% retorna todos os registros que contém a letra 'g' na palavra.     */

    public function selectLike($parametro) {
        $colunas = "`tema`";
        if (isset($this->conection)) {
            $resultSet = $this->bdconection->query("SELECT " . $colunas . " FROM " . $this->table .
                    " WHERE `tema` LIKE \"%" . $parametro . "%\";");

            $vetorNomes = null;

            $contador = 0;

            while ($row = $resultSet->fetch_object()) {
                $vetorNomes[$contador] = $row->tema;
                $contador++;
            }
            return $vetorNomes;
        }
        return null;
    }

    public function inserir($enderecoDoArquivo) {
        //$this->$conection->insert("INSERT INTO tcc" .  $colunas . " VALUES " . $enderecoDoArquivo);
        $conexao = mysql_query("INSERT INTO tcc(endereco) VALUES ('$enderecoDoArquivo')");
    }

    public function recuperar($campoCondicional) {
        
    }

    public function deletar($dado) {
        
    }

    public function editar($campo, $dado) {
        return true;
    }

}
